﻿<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>小米运动接口刷步数教程&常见问题</title>
    <link href="./Content/css/layout.min.css" rel="stylesheet" media="screen">
    <link href="./Content/css/prettify-cmd.css" rel="stylesheet" media="screen">
	<script src="../js/baidutongji.js"></script>
    <style>
        body {
            background-image: url(./Content/images/bg.jpg);
            /* background-image: url(./Content/images/bg-01.jpg); */
            background-size: cover;
            background-attachment: fixed;
            background-repeat: no-repeat;
        }

        h1 {
            color: #0077bb;
        }

        code,
        pre {
            padding: 0 3px 2px;
            font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
            font-size: 12px;
            background-color: transparent;
        }

        img {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>

<body>
    <div id="wmd-preview" class="wmd-preview wmd-preview-full-reader" data-medium-element="true"
        style="height: auto; left: 0px;">
        <div class="md-section-divider"></div>
        <div class="md-section-divider"></div>
        <h1 data-anchor-id="7rfs" id="小米运动接口刷步数源码及云函数使用教程">小米运动接口刷步数源码及云函数使用教程</h1>
        <hr>
        <div class="md-section-divider"></div>
        <h2 data-anchor-id="oqow" id="在线刷步数网址">在线刷步数网址</h2>
        <blockquote data-anchor-id="lzc8" class="white-blockquote">
            <p><a href="https://erma0.cn/tools/walk.html"
                    target="_blank">https://erma0.cn/tools/walk.html</a></p>
        </blockquote>
        <hr>
        <div class="md-section-divider"></div>
        <h2 data-anchor-id="ouiz" id="云函数使用教程">云函数使用教程</h2>
        <ol data-anchor-id="cuhj">
            <li>
                <p>拥有一个已经实名认证的腾讯云账号，登录后在腾讯云后台创建一个<strong>[云函数]</strong>， 云函数地址：<a
                        href="https://console.cloud.tencent.com/scf"
                        target="_blank">https://console.cloud.tencent.com/scf</a></p>
            </li>
            <li>
                <p>新建函数服务 环境选择python3.6 空白函数 名称随便写 <br>
                    <img src="./Content/images/1.png" alt="新建函数" title=""></p>
            </li>
            <li>
                <p>点击下一步跳转到编辑器页面，描述内容随便写，在右侧代码框替换成下方源码 <br>
                    <img src="./Content/images/2.png" alt="编辑函数信息" title=""></p>
            </li>
            <li>
                <p>将源码中最下方<code>main_handler</code>函数中的登录账号、密码、步数、通知key修改为自己的信息（账号、密码必填，步数、key选填）</p>
            </li>
            <li>
                <p>点击代码框下方<code>高级设置</code>，<code>执行超时时间</code>修改为30，保存</p>
            </li>
            <li>点击左侧的<code>触发管理</code>-<code>创建触发器</code>，触发周期选择自定义，输入表达式，比如<code>0 0 20 * * *
                    *</code>，代表每天20点执行（7个值从右往左依次代表年月周日时分秒），完事儿了 <br>
                <img src="./Content/images/3.png" alt="触发器"></li>
        </ol>
        <hr>
        <div class="md-section-divider"></div>
        <h2 data-anchor-id="76ti" id="源码">源码</h2>
        <div class="md-section-divider"></div>
        <pre class="prettyprint linenums prettyprinted"
            data-anchor-id="l3c2"><ol class="linenums"><li class="L0"><code><span class="com"># -*- encoding: utf-8 -*-</span></code></li><li class="L1"><code><span class="str">'''</span></code></li><li class="L2"><code><span class="str">@File    :   walk.py</span></code></li><li class="L3"><code><span class="str">@Time    :   2020年12月20日 18:16:09 星期天</span></code></li><li class="L4"><code><span class="str">@Author  :   ermao</span></code></li><li class="L5"><code><span class="str">@Version :   1.0</span></code></li><li class="L6"><code><span class="str">@Link    :   https://erma0.cn</span></code></li><li class="L7"><code><span class="str">@Desc    :   小米运动刷步数</span></code></li><li class="L8"><code><span class="str">@From    :   https://github.com/fuckgm/mimotion</span></code></li><li class="L9"><code><span class="str">'''</span></code></li><li class="L0"><code></code></li><li class="L1"><code><span class="kwd">print</span><span class="pun">(</span><span class="str">'start walk.py'</span><span class="pun">)</span></code></li><li class="L2"><code></code></li><li class="L3"><code><span class="kwd">import</span><span class="pln"> requests</span><span class="pun">,</span><span class="pln"> time</span><span class="pun">,</span><span class="pln"> re</span><span class="pun">,</span><span class="pln"> json</span><span class="pun">,</span><span class="pln"> random</span></code></li><li class="L4"><code></code></li><li class="L5"><code><span class="pln">now </span><span class="pun">=</span><span class="pln"> time</span><span class="pun">.</span><span class="pln">strftime</span><span class="pun">(</span><span class="str">"%Y-%m-%d %H:%M:%S"</span><span class="pun">,</span><span class="pln"> time</span><span class="pun">.</span><span class="pln">localtime</span><span class="pun">())</span></code></li><li class="L6"><code><span class="pln">headers </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span></code></li><li class="L7"><code><span class="pln">    </span><span class="str">'User-Agent'</span><span class="pun">:</span><span class="pln"> </span><span class="str">'Dalvik/2.1.0 (Linux; U; Android 9; MI 6 MIUI/20.6.18)'</span></code></li><li class="L8"><code><span class="pun">}</span></code></li><li class="L9"><code></code></li><li class="L0"><code></code></li><li class="L1"><code><span class="com">#获取登录code</span></code></li><li class="L2"><code><span class="kwd">def</span><span class="pln"> get_code</span><span class="pun">(</span><span class="pln">location</span><span class="pun">):</span></code></li><li class="L3"><code><span class="pln">    code_pattern </span><span class="pun">=</span><span class="pln"> re</span><span class="pun">.</span><span class="pln">compile</span><span class="pun">(</span><span class="str">"(?&lt;=access=).*?(?=&amp;)"</span><span class="pun">)</span></code></li><li class="L4"><code><span class="pln">    code </span><span class="pun">=</span><span class="pln"> code_pattern</span><span class="pun">.</span><span class="pln">findall</span><span class="pun">(</span><span class="pln">location</span><span class="pun">)[</span><span class="lit">0</span><span class="pun">]</span></code></li><li class="L5"><code><span class="pln">    </span><span class="kwd">return</span><span class="pln"> code</span></code></li><li class="L6"><code></code></li><li class="L7"><code></code></li><li class="L8"><code><span class="com">#登录</span></code></li><li class="L9"><code><span class="kwd">def</span><span class="pln"> login</span><span class="pun">(</span><span class="pln">user</span><span class="pun">,</span><span class="pln"> password</span><span class="pun">):</span></code></li><li class="L0"><code><span class="pln">    url1 </span><span class="pun">=</span><span class="pln"> </span><span class="str">"https://api-user.huami.com/registrations/+86"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> user </span><span class="pun">+</span><span class="pln"> </span><span class="str">"/tokens"</span></code></li><li class="L1"><code><span class="pln">    headers </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span></code></li><li class="L2"><code><span class="pln">        </span><span class="str">"Content-Type"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"application/x-www-form-urlencoded;charset=UTF-8"</span><span class="pun">,</span></code></li><li class="L3"><code><span class="pln">        </span><span class="str">"User-Agent"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"MiFit/4.6.0 (iPhone; iOS 14.0.1; Scale/2.00)"</span></code></li><li class="L4"><code><span class="pln">    </span><span class="pun">}</span></code></li><li class="L5"><code><span class="pln">    data1 </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span></code></li><li class="L6"><code><span class="pln">        </span><span class="str">"client_id"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"HuaMi"</span><span class="pun">,</span></code></li><li class="L7"><code><span class="pln">        </span><span class="str">"password"</span><span class="pun">:</span><span class="pln"> f</span><span class="str">"{password}"</span><span class="pun">,</span></code></li><li class="L8"><code><span class="pln">        </span><span class="str">"redirect_uri"</span><span class="pun">:</span></code></li><li class="L9"><code><span class="pln">        </span><span class="str">"https://s3-us-west-2.amazonaws.com/hm-registration/successsignin.html"</span><span class="pun">,</span></code></li><li class="L0"><code><span class="pln">        </span><span class="str">"token"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"access"</span></code></li><li class="L1"><code><span class="pln">    </span><span class="pun">}</span></code></li><li class="L2"><code><span class="pln">    r1 </span><span class="pun">=</span><span class="pln"> requests</span><span class="pun">.</span><span class="pln">post</span><span class="pun">(</span><span class="pln">url1</span><span class="pun">,</span></code></li><li class="L3"><code><span class="pln">                       data</span><span class="pun">=</span><span class="pln">data1</span><span class="pun">,</span></code></li><li class="L4"><code><span class="pln">                       headers</span><span class="pun">=</span><span class="pln">headers</span><span class="pun">,</span></code></li><li class="L5"><code><span class="pln">                       allow_redirects</span><span class="pun">=</span><span class="kwd">False</span><span class="pun">)</span></code></li><li class="L6"><code><span class="pln">    location </span><span class="pun">=</span><span class="pln"> r1</span><span class="pun">.</span><span class="pln">headers</span><span class="pun">[</span><span class="str">"Location"</span><span class="pun">]</span></code></li><li class="L7"><code><span class="pln">    </span><span class="kwd">try</span><span class="pun">:</span></code></li><li class="L8"><code><span class="pln">        code </span><span class="pun">=</span><span class="pln"> get_code</span><span class="pun">(</span><span class="pln">location</span><span class="pun">)</span></code></li><li class="L9"><code><span class="pln">    </span><span class="kwd">except</span><span class="pun">:</span></code></li><li class="L0"><code><span class="pln">        </span><span class="kwd">return</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span></code></li><li class="L1"><code><span class="pln">    </span><span class="com">#print("access_code获取成功！")</span></code></li><li class="L2"><code><span class="pln">    </span><span class="com">#print(code)</span></code></li><li class="L3"><code></code></li><li class="L4"><code><span class="pln">    url2 </span><span class="pun">=</span><span class="pln"> </span><span class="str">"https://account.huami.com/v2/client/login"</span></code></li><li class="L5"><code><span class="pln">    data2 </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span></code></li><li class="L6"><code><span class="pln">        </span><span class="str">"app_name"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"com.xiaomi.hm.health"</span><span class="pun">,</span></code></li><li class="L7"><code><span class="pln">        </span><span class="str">"app_version"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"4.6.0"</span><span class="pun">,</span></code></li><li class="L8"><code><span class="pln">        </span><span class="str">"code"</span><span class="pun">:</span><span class="pln"> f</span><span class="str">"{code}"</span><span class="pun">,</span></code></li><li class="L9"><code><span class="pln">        </span><span class="str">"country_code"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"CN"</span><span class="pun">,</span></code></li><li class="L0"><code><span class="pln">        </span><span class="str">"device_id"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"2C8B4939-0CCD-4E94-8CBA-CB8EA6E613A1"</span><span class="pun">,</span></code></li><li class="L1"><code><span class="pln">        </span><span class="str">"device_model"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"phone"</span><span class="pun">,</span></code></li><li class="L2"><code><span class="pln">        </span><span class="str">"grant_type"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"access_token"</span><span class="pun">,</span></code></li><li class="L3"><code><span class="pln">        </span><span class="str">"third_name"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"huami_phone"</span><span class="pun">,</span></code></li><li class="L4"><code><span class="pln">    </span><span class="pun">}</span></code></li><li class="L5"><code><span class="pln">    r2 </span><span class="pun">=</span><span class="pln"> requests</span><span class="pun">.</span><span class="pln">post</span><span class="pun">(</span><span class="pln">url2</span><span class="pun">,</span><span class="pln"> data</span><span class="pun">=</span><span class="pln">data2</span><span class="pun">,</span><span class="pln"> headers</span><span class="pun">=</span><span class="pln">headers</span><span class="pun">).</span><span class="pln">json</span><span class="pun">()</span></code></li><li class="L6"><code><span class="pln">    login_token </span><span class="pun">=</span><span class="pln"> r2</span><span class="pun">[</span><span class="str">"token_info"</span><span class="pun">][</span><span class="str">"login_token"</span><span class="pun">]</span></code></li><li class="L7"><code><span class="pln">    </span><span class="com">#print("login_token获取成功！")</span></code></li><li class="L8"><code><span class="pln">    </span><span class="com">#print(login_token)</span></code></li><li class="L9"><code><span class="pln">    userid </span><span class="pun">=</span><span class="pln"> r2</span><span class="pun">[</span><span class="str">"token_info"</span><span class="pun">][</span><span class="str">"user_id"</span><span class="pun">]</span></code></li><li class="L0"><code><span class="pln">    </span><span class="com">#print("userid获取成功！")</span></code></li><li class="L1"><code><span class="pln">    </span><span class="com">#print(userid)</span></code></li><li class="L2"><code></code></li><li class="L3"><code><span class="pln">    </span><span class="kwd">return</span><span class="pln"> login_token</span><span class="pun">,</span><span class="pln"> userid</span></code></li><li class="L4"><code></code></li><li class="L5"><code></code></li><li class="L6"><code><span class="com">#主函数</span></code></li><li class="L7"><code><span class="kwd">def</span><span class="pln"> main</span><span class="pun">(</span><span class="pln">user</span><span class="pun">,</span><span class="pln"> password</span><span class="pun">,</span><span class="pln"> step</span><span class="pun">=</span><span class="str">''</span><span class="pun">,</span><span class="pln"> sckey</span><span class="pun">=</span><span class="str">''</span><span class="pun">):</span></code></li><li class="L8"><code><span class="pln">    </span><span class="kwd">if</span><span class="pln"> user </span><span class="pun">==</span><span class="pln"> </span><span class="str">''</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> password </span><span class="pun">==</span><span class="pln"> </span><span class="str">''</span><span class="pun">:</span></code></li><li class="L9"><code><span class="pln">        </span><span class="kwd">print</span><span class="pun">(</span><span class="str">"用户名或密码填写有误！"</span><span class="pun">)</span></code></li><li class="L0"><code><span class="pln">        </span><span class="kwd">return</span><span class="pln"> </span><span class="str">'用户名或密码填写有误！'</span></code></li><li class="L1"><code><span class="pln">    </span><span class="kwd">if</span><span class="pln"> </span><span class="kwd">not</span><span class="pln"> step</span><span class="pun">:</span></code></li><li class="L2"><code><span class="pln">        </span><span class="kwd">print</span><span class="pun">(</span><span class="str">"已设置为随机步数（12000-19999）"</span><span class="pun">)</span></code></li><li class="L3"><code><span class="pln">        step </span><span class="pun">=</span><span class="pln"> str</span><span class="pun">(</span><span class="pln">random</span><span class="pun">.</span><span class="pln">randint</span><span class="pun">(</span><span class="lit">12000</span><span class="pun">,</span><span class="pln"> </span><span class="lit">19999</span><span class="pun">))</span></code></li><li class="L4"><code><span class="pln">    login_token </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span></code></li><li class="L5"><code><span class="pln">    login_token</span><span class="pun">,</span><span class="pln"> userid </span><span class="pun">=</span><span class="pln"> login</span><span class="pun">(</span><span class="pln">user</span><span class="pun">,</span><span class="pln"> password</span><span class="pun">)</span></code></li><li class="L6"><code><span class="pln">    </span><span class="kwd">if</span><span class="pln"> login_token </span><span class="pun">==</span><span class="pln"> </span><span class="lit">0</span><span class="pun">:</span></code></li><li class="L7"><code><span class="pln">        </span><span class="kwd">print</span><span class="pun">(</span><span class="str">"登陆失败！"</span><span class="pun">)</span></code></li><li class="L8"><code><span class="pln">        </span><span class="kwd">return</span><span class="pln"> </span><span class="str">"login fail!"</span></code></li><li class="L9"><code></code></li><li class="L0"><code><span class="pln">    t </span><span class="pun">=</span><span class="pln"> get_time</span><span class="pun">()</span></code></li><li class="L1"><code></code></li><li class="L2"><code><span class="pln">    app_token </span><span class="pun">=</span><span class="pln"> get_app_token</span><span class="pun">(</span><span class="pln">login_token</span><span class="pun">)</span></code></li><li class="L3"><code></code></li><li class="L4"><code><span class="pln">    today </span><span class="pun">=</span><span class="pln"> time</span><span class="pun">.</span><span class="pln">strftime</span><span class="pun">(</span><span class="str">"%F"</span><span class="pun">)</span></code></li><li class="L5"><code></code></li><li class="L6"><code><span class="pln">    data_json </span><span class="pun">=</span><span class="pln"> </span><span class="str">'%5B%7B%22data_hr%22%3A%22%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F9L%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FVv%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F0v%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F9e%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F0n%5C%2Fa%5C%2F%5C%2F%5C%2FS%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F0b%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F1FK%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FR%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F9PTFFpaf9L%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FR%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F0j%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F9K%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FOv%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2Fzf%5C%2F%5C%2F%5C%2F86%5C%2Fzr%5C%2FOv88%5C%2Fzf%5C%2FPf%5C%2F%5C%2F%5C%2F0v%5C%2FS%5C%2F8%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FSf%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2Fz3%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F0r%5C%2FOv%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FS%5C%2F9L%5C%2Fzb%5C%2FSf9K%5C%2F0v%5C%2FRf9H%5C%2Fzj%5C%2FSf9K%5C%2F0%5C%2F%5C%2FN%5C%2F%5C%2F%5C%2F%5C%2F0D%5C%2FSf83%5C%2Fzr%5C%2FPf9M%5C%2F0v%5C%2FOv9e%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FS%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2Fzv%5C%2F%5C%2Fz7%5C%2FO%5C%2F83%5C%2Fzv%5C%2FN%5C%2F83%5C%2Fzr%5C%2FN%5C%2F86%5C%2Fz%5C%2F%5C%2FNv83%5C%2Fzn%5C%2FXv84%5C%2Fzr%5C%2FPP84%5C%2Fzj%5C%2FN%5C%2F9e%5C%2Fzr%5C%2FN%5C%2F89%5C%2F03%5C%2FP%5C%2F89%5C%2Fz3%5C%2FQ%5C%2F9N%5C%2F0v%5C%2FTv9C%5C%2F0H%5C%2FOf9D%5C%2Fzz%5C%2FOf88%5C%2Fz%5C%2F%5C%2FPP9A%5C%2Fzr%5C%2FN%5C%2F86%5C%2Fzz%5C%2FNv87%5C%2F0D%5C%2FOv84%5C%2F0v%5C%2FO%5C%2F84%5C%2Fzf%5C%2FMP83%5C%2FzH%5C%2FNv83%5C%2Fzf%5C%2FN%5C%2F84%5C%2Fzf%5C%2FOf82%5C%2Fzf%5C%2FOP83%5C%2Fzb%5C%2FMv81%5C%2FzX%5C%2FR%5C%2F9L%5C%2F0v%5C%2FO%5C%2F9I%5C%2F0T%5C%2FS%5C%2F9A%5C%2Fzn%5C%2FPf89%5C%2Fzn%5C%2FNf9K%5C%2F07%5C%2FN%5C%2F83%5C%2Fzn%5C%2FNv83%5C%2Fzv%5C%2FO%5C%2F9A%5C%2F0H%5C%2FOf8%5C%2F%5C%2Fzj%5C%2FPP83%5C%2Fzj%5C%2FS%5C%2F87%5C%2Fzj%5C%2FNv84%5C%2Fzf%5C%2FOf83%5C%2Fzf%5C%2FOf83%5C%2Fzb%5C%2FNv9L%5C%2Fzj%5C%2FNv82%5C%2Fzb%5C%2FN%5C%2F85%5C%2Fzf%5C%2FN%5C%2F9J%5C%2Fzf%5C%2FNv83%5C%2Fzj%5C%2FNv84%5C%2F0r%5C%2FSv83%5C%2Fzf%5C%2FMP%5C%2F%5C%2F%5C%2Fzb%5C%2FMv82%5C%2Fzb%5C%2FOf85%5C%2Fz7%5C%2FNv8%5C%2F%5C%2F0r%5C%2FS%5C%2F85%5C%2F0H%5C%2FQP9B%5C%2F0D%5C%2FNf89%5C%2Fzj%5C%2FOv83%5C%2Fzv%5C%2FNv8%5C%2F%5C%2F0f%5C%2FSv9O%5C%2F0ZeXv%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F1X%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F9B%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FTP%5C%2F%5C%2F%5C%2F1b%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F0%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F9N%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%5C%2Fv7%2B%22%2C%22date%22%3A%222020-08-14%22%2C%22data%22%3A%5B%7B%22start%22%3A0%2C%22stop%22%3A1439%2C%22value%22%3A%22UA8AUBQAUAwAUBoAUAEAYCcAUBkAUB4AUBgAUCAAUAEAUBkAUAwAYAsAYB8AYB0AYBgAYCoAYBgAYB4AUCcAUBsAUB8AUBwAUBIAYBkAYB8AUBoAUBMAUCEAUCIAYBYAUBwAUCAAUBgAUCAAUBcAYBsAYCUAATIPYD0KECQAYDMAYB0AYAsAYCAAYDwAYCIAYB0AYBcAYCQAYB0AYBAAYCMAYAoAYCIAYCEAYCYAYBsAYBUAYAYAYCIAYCMAUB0AUCAAUBYAUCoAUBEAUC8AUB0AUBYAUDMAUDoAUBkAUC0AUBQAUBwAUA0AUBsAUAoAUCEAUBYAUAwAUB4AUAwAUCcAUCYAUCwKYDUAAUUlEC8IYEMAYEgAYDoAYBAAUAMAUBkAWgAAWgAAWgAAWgAAWgAAUAgAWgAAUBAAUAQAUA4AUA8AUAkAUAIAUAYAUAcAUAIAWgAAUAQAUAkAUAEAUBkAUCUAWgAAUAYAUBEAWgAAUBYAWgAAUAYAWgAAWgAAWgAAWgAAUBcAUAcAWgAAUBUAUAoAUAIAWgAAUAQAUAYAUCgAWgAAUAgAWgAAWgAAUAwAWwAAXCMAUBQAWwAAUAIAWgAAWgAAWgAAWgAAWgAAWgAAWgAAWgAAWREAWQIAUAMAWSEAUDoAUDIAUB8AUCEAUC4AXB4AUA4AWgAAUBIAUA8AUBAAUCUAUCIAUAMAUAEAUAsAUAMAUCwAUBYAWgAAWgAAWgAAWgAAWgAAWgAAUAYAWgAAWgAAWgAAUAYAWwAAWgAAUAYAXAQAUAMAUBsAUBcAUCAAWwAAWgAAWgAAWgAAWgAAUBgAUB4AWgAAUAcAUAwAWQIAWQkAUAEAUAIAWgAAUAoAWgAAUAYAUB0AWgAAWgAAUAkAWgAAWSwAUBIAWgAAUC4AWSYAWgAAUAYAUAoAUAkAUAIAUAcAWgAAUAEAUBEAUBgAUBcAWRYAUA0AWSgAUB4AUDQAUBoAXA4AUA8AUBwAUA8AUA4AUA4AWgAAUAIAUCMAWgAAUCwAUBgAUAYAUAAAUAAAUAAAUAAAUAAAUAAAUAAAUAAAUAAAWwAAUAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAeSEAeQ8AcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcBcAcAAAcAAAcCYOcBUAUAAAUAAAUAAAUAAAUAUAUAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcCgAeQAAcAAAcAAAcAAAcAAAcAAAcAYAcAAAcBgAeQAAcAAAcAAAegAAegAAcAAAcAcAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcCkAeQAAcAcAcAAAcAAAcAwAcAAAcAAAcAIAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcCIAeQAAcAAAcAAAcAAAcAAAcAAAeRwAeQAAWgAAUAAAUAAAUAAAUAAAUAAAcAAAcAAAcBoAeScAeQAAegAAcBkAeQAAUAAAUAAAUAAAUAAAUAAAUAAAcAAAcAAAcAAAcAAAcAAAcAAAegAAegAAcAAAcAAAcBgAeQAAcAAAcAAAcAAAcAAAcAAAcAkAegAAegAAcAcAcAAAcAcAcAAAcAAAcAAAcAAAcA8AeQAAcAAAcAAAeRQAcAwAUAAAUAAAUAAAUAAAUAAAUAAAcAAAcBEAcA0AcAAAWQsAUAAAUAAAUAAAUAAAUAAAcAAAcAoAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAYAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcBYAegAAcAAAcAAAegAAcAcAcAAAcAAAcAAAcAAAcAAAeRkAegAAegAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAEAcAAAcAAAcAAAcAUAcAQAcAAAcBIAeQAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcBsAcAAAcAAAcBcAeQAAUAAAUAAAUAAAUAAAUAAAUBQAcBYAUAAAUAAAUAoAWRYAWTQAWQAAUAAAUAAAUAAAcAAAcAAAcAAAcAAAcAAAcAMAcAAAcAQAcAAAcAAAcAAAcDMAeSIAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcBQAeQwAcAAAcAAAcAAAcAMAcAAAeSoAcA8AcDMAcAYAeQoAcAwAcFQAcEMAeVIAaTYAbBcNYAsAYBIAYAIAYAIAYBUAYCwAYBMAYDYAYCkAYDcAUCoAUCcAUAUAUBAAWgAAYBoAYBcAYCgAUAMAUAYAUBYAUA4AUBgAUAgAUAgAUAsAUAsAUA4AUAMAUAYAUAQAUBIAASsSUDAAUDAAUBAAYAYAUBAAUAUAUCAAUBoAUCAAUBAAUAoAYAIAUAQAUAgAUCcAUAsAUCIAUCUAUAoAUA4AUB8AUBkAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAAfgAA%22%2C%22tz%22%3A32%2C%22did%22%3A%22DA932FFFFE8816E7%22%2C%22src%22%3A24%7D%5D%2C%22summary%22%3A%22%7B%5C%22v%5C%22%3A6%2C%5C%22slp%5C%22%3A%7B%5C%22st%5C%22%3A1597349880%2C%5C%22ed%5C%22%3A1597369860%2C%5C%22dp%5C%22%3A39%2C%5C%22lt%5C%22%3A294%2C%5C%22wk%5C%22%3A0%2C%5C%22usrSt%5C%22%3A-1440%2C%5C%22usrEd%5C%22%3A-1440%2C%5C%22wc%5C%22%3A0%2C%5C%22is%5C%22%3A169%2C%5C%22lb%5C%22%3A10%2C%5C%22to%5C%22%3A23%2C%5C%22dt%5C%22%3A0%2C%5C%22rhr%5C%22%3A58%2C%5C%22ss%5C%22%3A69%2C%5C%22stage%5C%22%3A%5B%7B%5C%22start%5C%22%3A1698%2C%5C%22stop%5C%22%3A1711%2C%5C%22mode%5C%22%3A4%7D%2C%7B%5C%22start%5C%22%3A1712%2C%5C%22stop%5C%22%3A1728%2C%5C%22mode%5C%22%3A5%7D%2C%7B%5C%22start%5C%22%3A1729%2C%5C%22stop%5C%22%3A1818%2C%5C%22mode%5C%22%3A4%7D%2C%7B%5C%22start%5C%22%3A1819%2C%5C%22stop%5C%22%3A1832%2C%5C%22mode%5C%22%3A5%7D%2C%7B%5C%22start%5C%22%3A1833%2C%5C%22stop%5C%22%3A1920%2C%5C%22mode%5C%22%3A4%7D%2C%7B%5C%22start%5C%22%3A1921%2C%5C%22stop%5C%22%3A1928%2C%5C%22mode%5C%22%3A5%7D%2C%7B%5C%22start%5C%22%3A1929%2C%5C%22stop%5C%22%3A2030%2C%5C%22mode%5C%22%3A4%7D%5D%7D%2C%5C%22stp%5C%22%3A%7B%5C%22ttl%5C%22%3A125%2C%5C%22dis%5C%22%3A82%2C%5C%22cal%5C%22%3A5%2C%5C%22wk%5C%22%3A7%2C%5C%22rn%5C%22%3A0%2C%5C%22runDist%5C%22%3A23%2C%5C%22runCal%5C%22%3A3%7D%2C%5C%22goal%5C%22%3A8000%2C%5C%22tz%5C%22%3A%5C%2228800%5C%22%2C%5C%22sn%5C%22%3A%5C%22e716882f93da%5C%22%7D%22%2C%22source%22%3A24%2C%22type%22%3A0%7D%5D'</span></code></li><li class="L7"><code></code></li><li class="L8"><code><span class="pln">    finddate </span><span class="pun">=</span><span class="pln"> re</span><span class="pun">.</span><span class="pln">compile</span><span class="pun">(</span><span class="pln">r</span><span class="str">'.*?date%22%3A%22(.*?)%22%2C%22data.*?'</span><span class="pun">)</span></code></li><li class="L9"><code><span class="pln">    findstep </span><span class="pun">=</span><span class="pln"> re</span><span class="pun">.</span><span class="pln">compile</span><span class="pun">(</span><span class="pln">r</span><span class="str">'.*?ttl%5C%22%3A(.*?)%2C%5C%22dis.*?'</span><span class="pun">)</span></code></li><li class="L0"><code><span class="pln">    data_json </span><span class="pun">=</span><span class="pln"> re</span><span class="pun">.</span><span class="kwd">sub</span><span class="pun">(</span><span class="pln">finddate</span><span class="pun">.</span><span class="pln">findall</span><span class="pun">(</span><span class="pln">data_json</span><span class="pun">)[</span><span class="lit">0</span><span class="pun">],</span><span class="pln"> today</span><span class="pun">,</span><span class="pln"> str</span><span class="pun">(</span><span class="pln">data_json</span><span class="pun">))</span></code></li><li class="L1"><code><span class="pln">    data_json </span><span class="pun">=</span><span class="pln"> re</span><span class="pun">.</span><span class="kwd">sub</span><span class="pun">(</span><span class="pln">findstep</span><span class="pun">.</span><span class="pln">findall</span><span class="pun">(</span><span class="pln">data_json</span><span class="pun">)[</span><span class="lit">0</span><span class="pun">],</span><span class="pln"> step</span><span class="pun">,</span><span class="pln"> str</span><span class="pun">(</span><span class="pln">data_json</span><span class="pun">))</span></code></li><li class="L2"><code></code></li><li class="L3"><code><span class="pln">    url </span><span class="pun">=</span><span class="pln"> f</span><span class="str">'https://api-mifit-cn.huami.com/v1/data/band_data.json?&amp;t={t}'</span></code></li><li class="L4"><code><span class="pln">    head </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span></code></li><li class="L5"><code><span class="pln">        </span><span class="str">"apptoken"</span><span class="pun">:</span><span class="pln"> app_token</span><span class="pun">,</span></code></li><li class="L6"><code><span class="pln">        </span><span class="str">"Content-Type"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"application/x-www-form-urlencoded"</span></code></li><li class="L7"><code><span class="pln">    </span><span class="pun">}</span></code></li><li class="L8"><code></code></li><li class="L9"><code><span class="pln">    data </span><span class="pun">=</span><span class="pln"> f</span><span class="str">'userid={userid}&amp;last_sync_data_time=1597306380&amp;device_type=0&amp;last_deviceid=DA932FFFFE8816E7&amp;data_json={data_json}'</span></code></li><li class="L0"><code></code></li><li class="L1"><code><span class="pln">    response </span><span class="pun">=</span><span class="pln"> requests</span><span class="pun">.</span><span class="pln">post</span><span class="pun">(</span><span class="pln">url</span><span class="pun">,</span><span class="pln"> data</span><span class="pun">=</span><span class="pln">data</span><span class="pun">,</span><span class="pln"> headers</span><span class="pun">=</span><span class="pln">head</span><span class="pun">).</span><span class="pln">json</span><span class="pun">()</span></code></li><li class="L2"><code><span class="pln">    </span><span class="com">#print(response)</span></code></li><li class="L3"><code><span class="pln">    result </span><span class="pun">=</span><span class="pln"> f</span><span class="str">"[{now}] 修改步数（{step}）"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> response</span><span class="pun">[</span><span class="str">'message'</span><span class="pun">]</span></code></li><li class="L4"><code><span class="pln">    </span><span class="kwd">print</span><span class="pun">(</span><span class="pln">result</span><span class="pun">)</span></code></li><li class="L5"><code><span class="pln">    push_wx</span><span class="pun">(</span><span class="pln">sckey</span><span class="pun">,</span><span class="pln"> result</span><span class="pun">)</span></code></li><li class="L6"><code><span class="pln">    </span><span class="kwd">return</span><span class="pln"> result</span></code></li><li class="L7"><code></code></li><li class="L8"><code></code></li><li class="L9"><code><span class="com">#获取时间戳</span></code></li><li class="L0"><code><span class="kwd">def</span><span class="pln"> get_time</span><span class="pun">():</span></code></li><li class="L1"><code><span class="pln">    url </span><span class="pun">=</span><span class="pln"> </span><span class="str">'http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp'</span></code></li><li class="L2"><code><span class="pln">    response </span><span class="pun">=</span><span class="pln"> requests</span><span class="pun">.</span><span class="kwd">get</span><span class="pun">(</span><span class="pln">url</span><span class="pun">,</span><span class="pln"> headers</span><span class="pun">=</span><span class="pln">headers</span><span class="pun">).</span><span class="pln">json</span><span class="pun">()</span></code></li><li class="L3"><code><span class="pln">    t </span><span class="pun">=</span><span class="pln"> response</span><span class="pun">[</span><span class="str">'data'</span><span class="pun">][</span><span class="str">'t'</span><span class="pun">]</span></code></li><li class="L4"><code><span class="pln">    </span><span class="kwd">return</span><span class="pln"> t</span></code></li><li class="L5"><code></code></li><li class="L6"><code></code></li><li class="L7"><code><span class="com">#获取app_token</span></code></li><li class="L8"><code><span class="kwd">def</span><span class="pln"> get_app_token</span><span class="pun">(</span><span class="pln">login_token</span><span class="pun">):</span></code></li><li class="L9"><code><span class="pln">    url </span><span class="pun">=</span><span class="pln"> f</span><span class="str">"https://account-cn.huami.com/v1/client/app_tokens?app_name=com.xiaomi.hm.health&amp;dn=api-user.huami.com%2Capi-mifit.huami.com%2Capp-analytics.huami.com&amp;login_token={login_token}"</span></code></li><li class="L0"><code><span class="pln">    response </span><span class="pun">=</span><span class="pln"> requests</span><span class="pun">.</span><span class="kwd">get</span><span class="pun">(</span><span class="pln">url</span><span class="pun">,</span><span class="pln"> headers</span><span class="pun">=</span><span class="pln">headers</span><span class="pun">).</span><span class="pln">json</span><span class="pun">()</span></code></li><li class="L1"><code><span class="pln">    app_token </span><span class="pun">=</span><span class="pln"> response</span><span class="pun">[</span><span class="str">'token_info'</span><span class="pun">][</span><span class="str">'app_token'</span><span class="pun">]</span></code></li><li class="L2"><code><span class="pln">    </span><span class="com">#print("app_token获取成功！")</span></code></li><li class="L3"><code><span class="pln">    </span><span class="com">#print(app_token)</span></code></li><li class="L4"><code><span class="pln">    </span><span class="kwd">return</span><span class="pln"> app_token</span></code></li><li class="L5"><code></code></li><li class="L6"><code></code></li><li class="L7"><code><span class="com"># 推送server</span></code></li><li class="L8"><code><span class="kwd">def</span><span class="pln"> push_wx</span><span class="pun">(</span><span class="pln">sckey</span><span class="pun">,</span><span class="pln"> desp</span><span class="pun">=</span><span class="str">""</span><span class="pun">):</span></code></li><li class="L9"><code><span class="pln">    </span><span class="str">"""</span></code></li><li class="L0"><code><span class="str">    推送消息到微信</span></code></li><li class="L1"><code><span class="str">    """</span></code></li><li class="L2"><code><span class="pln">    </span><span class="kwd">if</span><span class="pln"> sckey </span><span class="pun">==</span><span class="pln"> </span><span class="str">''</span><span class="pun">:</span></code></li><li class="L3"><code><span class="pln">        </span><span class="kwd">print</span><span class="pun">(</span><span class="str">"[注意] 未提供sckey，不进行推送！"</span><span class="pun">)</span></code></li><li class="L4"><code><span class="pln">    </span><span class="kwd">else</span><span class="pun">:</span></code></li><li class="L5"><code><span class="pln">        server_url </span><span class="pun">=</span><span class="pln"> f</span><span class="str">"https://sc.ftqq.com/{sckey}.send"</span></code></li><li class="L6"><code><span class="pln">        </span><span class="kwd">params</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="str">"text"</span><span class="pun">:</span><span class="pln"> </span><span class="str">'小米运动 步数修改'</span><span class="pun">,</span><span class="pln"> </span><span class="str">"desp"</span><span class="pun">:</span><span class="pln"> desp</span><span class="pun">}</span></code></li><li class="L7"><code></code></li><li class="L8"><code><span class="pln">        response </span><span class="pun">=</span><span class="pln"> requests</span><span class="pun">.</span><span class="kwd">get</span><span class="pun">(</span><span class="pln">server_url</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">params</span><span class="pun">=</span><span class="kwd">params</span><span class="pun">)</span></code></li><li class="L9"><code><span class="pln">        json_data </span><span class="pun">=</span><span class="pln"> response</span><span class="pun">.</span><span class="pln">json</span><span class="pun">()</span></code></li><li class="L0"><code></code></li><li class="L1"><code><span class="pln">        </span><span class="kwd">if</span><span class="pln"> json_data</span><span class="pun">[</span><span class="str">'errno'</span><span class="pun">]</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="lit">0</span><span class="pun">:</span></code></li><li class="L2"><code><span class="pln">            </span><span class="kwd">print</span><span class="pun">(</span><span class="pln">f</span><span class="str">"[{now}] 推送成功。"</span><span class="pun">)</span></code></li><li class="L3"><code><span class="pln">        </span><span class="kwd">else</span><span class="pun">:</span></code></li><li class="L4"><code><span class="pln">            </span><span class="kwd">print</span><span class="pun">(</span><span class="pln">f</span><span class="str">"[{now}] 推送失败：{json_data['errno']}({json_data['errmsg']})"</span><span class="pun">)</span></code></li><li class="L5"><code></code></li><li class="L6"><code></code></li><li class="L7"><code><span class="com"># 云函数调用</span></code></li><li class="L8"><code><span class="kwd">def</span><span class="pln"> main_handler</span><span class="pun">(</span><span class="kwd">event</span><span class="pun">,</span><span class="pln"> context</span><span class="pun">):</span></code></li><li class="L9"><code><span class="pln">    </span><span class="com"># 登录账号（手机号）</span></code></li><li class="L0"><code><span class="pln">    user </span><span class="pun">=</span><span class="pln"> </span><span class="str">'18888888888'</span></code></li><li class="L1"><code><span class="pln">    </span><span class="com"># 登录密码</span></code></li><li class="L2"><code><span class="pln">    passwd </span><span class="pun">=</span><span class="pln"> </span><span class="str">'123456'</span></code></li><li class="L3"><code><span class="pln">    </span><span class="com"># 要修改的步数，直接输入想要修改的步数值，留空为12000-19999随机步数</span></code></li><li class="L4"><code><span class="pln">    step </span><span class="pun">=</span><span class="pln"> </span><span class="str">''</span></code></li><li class="L5"><code><span class="pln">    </span><span class="com"># server酱通知所需key，留空为不通知</span></code></li><li class="L6"><code><span class="pln">    sckey </span><span class="pun">=</span><span class="pln"> </span><span class="str">''</span></code></li><li class="L7"><code><span class="pln">    </span><span class="kwd">return</span><span class="pln"> main</span><span class="pun">(</span><span class="pln">user</span><span class="pun">,</span><span class="pln"> passwd</span><span class="pun">,</span><span class="pln"> step</span><span class="pun">,</span><span class="pln"> sckey</span><span class="pun">)</span></code></li><li class="L8"><code></code></li><li class="L9"><code></code></li><li class="L0"><code><span class="kwd">if</span><span class="pln"> __name__ </span><span class="pun">==</span><span class="pln"> </span><span class="str">"__main__"</span><span class="pun">:</span></code></li><li class="L1"><code><span class="pln">    main_handler</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">)</span></code></li></ol></pre>
    </div>
</body>

</html>